<template>
  <div class="login-register">
    <div class="contain">
      <div class="big-box" :class="{active:isLogin}">
        <div class="big-contain" v-if="isLogin">
          <div class="btitle">账户登录</div>

          <div class="bform">
            <input type="text" placeholder="用户名" v-model="form.username">
            <span class="errTips" v-if="usernameError">* 用户名填写错误 *</span>
            <input type="password" placeholder="密码" v-model="form.password">
            <span class="errTips" v-if="passwordError">* 密码填写错误 *</span>
          </div>

          <button class="bbutton" :disabled="isDisable" @click="login">登录</button>
        </div>

        <div class="big-contain" v-else>
          <div class="btitle">创建账户</div>
          <div class="bform">
            <input type="text" placeholder="用户名" v-model="form.username">
            <span class="errTips" v-if="existed">* 用户名已经存在！ *</span>
            <input type="text" placeholder="真实姓名" v-model="form.realName">
            <input type="password" placeholder="密码" v-model="form.password">
          </div>
          <button class="bbutton" :disabled="isDisable" @click="register">注册</button>
        </div>

      </div>
      <div class="small-box" :class="{active:isLogin}">
        <div class="small-contain" v-if="isLogin">
          <div class="stitle">你好，朋友!</div>
          <p class="scontent">开始注册，和我们一起旅行</p>
          <button class="sbutton" @click="changeType">注册</button>
        </div>
        <div class="small-contain" v-else>
          <div class="stitle">欢迎回来!</div>
          <p class="scontent">与我们保持联系，请登录你的账户</p>
          <button class="sbutton" @click="changeType">登录</button>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import axios from "axios";

export default{
  name:'login-register',
  data(){
    return {
      // redirext:'/homepage',
      isDisable:false,
      isLogin:false,
      usernameError: false,
      passwordError: false,
      existed: false,
      form:{
        username:'',
        password:'',
        realName:'',
      }
    }
  },
  methods:{
    changeType() {
      this.isLogin = !this.isLogin
      this.form.username = ''
      this.form.password = ''
      this.form.realName = ''
    },
    login() {
      const _this = this;
      // _this.GLOBAL.isDisable=true;
      // setTimeout(() => {
      //   _this.GLOBAL.isDisable=false;
      // }, 2500)
      _this.isDisable=true;
      setTimeout(() => {
        _this.isDisable=false;
      }, 2500)
      if (_this.form.username != "" && _this.form.password != "") {
        axios({
          method: "post",
          url: _this.APIurl.apiUrl.domainName+"user/login",
          headers: {
            "Content-Type": "application/json",
          },
          data:{
            username: _this.form.username,
            password: _this.form.password
          }
        })
            .then(function(resp) {
              switch(resp.data.code){
                case 1:
                  sessionStorage.setItem('id',resp.data.data.id);
                  sessionStorage.setItem('user', JSON.stringify(resp.data.data));
                  let redirect=decodeURIComponent(_this.$route.query.redirect  || '/');
                  _this.$router.push({path:redirect});
                  _this.$message({
                    showClose: true,
                    message: '登录成功',
                    type: 'success'
                  });


                  break;
                case 0:
                  _this.usernameError = true;
                  break;
                case -1:
                  _this.passwordError = true;
                  break;
              }
            })
            .catch(function(error) {
              console.log(error);
            });

      }
    },
    register(){
      const _this = this;
      // _this.GLOBAL.isDisable=true;
      // setTimeout(() => {
      //   _this.GLOBAL.isDisable=false;
      // }, 2500)
      _this.isDisable=true;
      setTimeout(() => {
        _this.isDisable=false;
      }, 2500)
      if(_this.form.username != "" && _this.form.password != "" && _this.form.realName != ""){

        axios({
          method: "post",
          url: _this.APIurl.apiUrl.domainName+"user/register",
          headers: {
            "Content-Type": "application/json",
          },
          data:{
            username: _this.form.username,
            password: _this.form.password,
            realName: _this.form.realName
          }
        })
            .then(function(resp) {
              switch(resp.data.code){
                case 1:
                  _this.$message({
                    showClose: true,
                    message: '注册成功',
                    type: 'success'
                  });
                  break;
                case 0:
                  _this.existed = true;
                  break;
              }
            })
            .catch(function(error) {
              console.log(error);
            });


      } else {
        _this.$message({
          showClose: true,
          message: '填写不能为空',
          type: 'error'
        })
      }
    }
  },
  created() {
    let flag = navigator.userAgent.match(
        /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
    );

    if(flag){
      let redirect=decodeURIComponent(this.$route.query.redirect  || '/');
      this.$router.push({
        path:"loginMobile",
        query:{
          redirect:redirect
        }
      })
    }
  }


}
</script>

<style scoped="scoped">
.login-register{
  width: 100vw;
  height: 100vh;
  box-sizing: border-box;
}
.contain{
  width: 60%;
  height: 60%;
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  background-color: #fff;
  border-radius: 20px;
  box-shadow: 0 0 3px #f0f0f0,
  0 0 6px #f0f0f0;
}
.big-box{
  width: 70%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 30%;
  transform: translateX(0%);
  transition: all 1s;
}
.big-contain{
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.btitle{
  font-size: 1.5em;
  font-weight: bold;
  color: rgb(57,167,176);
}
.bform{
  width: 100%;
  height: 40%;
  padding: 2em 0;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
}
.bform .errTips{
  display: block;
  width: 50%;
  text-align: left;
  color: red;
  font-size: 0.7em;
  margin-left: 1em;
}
.bform input{
  width: 50%;
  height: 30px;
  border: none;
  outline: none;
  border-radius: 10px;
  padding-left: 2em;
  background-color: #f0f0f0;
}
.bbutton{
  width: 20%;
  height: 40px;
  border-radius: 24px;
  border: none;
  outline: none;
  background-color: rgb(57,167,176);
  color: #fff;
  font-size: 0.9em;
  cursor: pointer;
}
.small-box{
  width: 30%;
  height: 100%;
  background: linear-gradient(135deg,rgb(57,167,176),rgb(56,183,145));
  position: absolute;
  top: 0;
  left: 0;
  transform: translateX(0%);
  transition: all 1s;
  border-top-left-radius: inherit;
  border-bottom-left-radius: inherit;
}
.small-contain{
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.stitle{
  font-size: 1.5em;
  font-weight: bold;
  color: #fff;
}
.scontent{
  font-size: 0.8em;
  color: #fff;
  text-align: center;
  padding: 2em 4em;
  line-height: 1.7em;
}
.sbutton{
  width: 60%;
  height: 40px;
  border-radius: 24px;
  border: 1px solid #fff;
  outline: none;
  background-color: transparent;
  color: #fff;
  font-size: 0.9em;
  cursor: pointer;
}

.big-box.active{
  left: 0;
  transition: all 0.5s;
}
.small-box.active{
  left: 100%;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-right-radius: inherit;
  border-bottom-right-radius: inherit;
  transform: translateX(-100%);
  transition: all 1s;
}
</style>
